A difficult problem in designing a client-server computer system is specifying the capacity of the server based on predicted client loads. This specification is used to design the system to support current user needs and to be scalable to meet future user needs. Without good prediction of application performance under projected loads, the system may have insufficient capacity, which can reduce productivity. Alternatively, too much equipment may be purchased and human resources may be allocated in excess of actual requirements.
The measurement of performance and reliability of a system often is characterized as benchmarking. Many applications are available which for benchmarking a variety of computer systems. Benchmarking applications typically use tests which are designed to be performed individually on several servers and applications, in order to compare the relative performance of those systems. Additionally, such benchmarking applications typically run the tests over a fixed period of time. The user has to wait until the test is completed to know about the performance of the system under test. Generally, the results one system are not considered accurate unless the test is completed.